package com.ict.web.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ict.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;

import java.math.BigDecimal;
import java.time.LocalDateTime;


/**
 * 年度申报--刘杰对象 yzq_annual_declaration
 *
 * @author liujie
 * @date 2022-02-25
 */
@ToString
@Data
@TableName("yzq_annual_declaration")
public class AnnualDeclaration
{
    private static final long serialVersionUID = 1L;

    /** 年度申报id */
    @TableId(value = "annual_id",type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "年度申报id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long annualId;

    /** 年度项目计划id */
    @ApiModelProperty(value = "年度项目计划id")
//    @JsonFormat(shape = JsonFormat.Shape.STRING)
    @JsonSerialize(using=ToStringSerializer.class)
    private Long planId;

    /** 年度项目计划名称 */
    @Excel(name = "年度项目计划名称")
    @ApiModelProperty(value = "年度项目计划名称")
    private String planName;

    /** 项目名称 */
    @Excel(name = "项目名称")
    @ApiModelProperty(value = "项目名称")
    private String entryName;

    /** 项目类别:{0:建设类;1:购买服务类;2:运维类;3:其他} */
    @Excel(name = "项目类别:{0:建设类;1:购买服务类;2:运维类;3:其他}")
    @ApiModelProperty(value = "项目类别:{0:建设类;1:购买服务类;2:运维类;3:其他}")
    private String projectCategory;

    /** 项目投资估算（万元） */
    @Excel(name = "项目投资估算", readConverterExp = "万=元")
    @ApiModelProperty(value = "项目投资估算")
    private BigDecimal projectInvestmentEstimation;

    /** 资金来源 */
    @Excel(name = "资金来源")
    @ApiModelProperty(value = "资金来源")
    private String sourceOfFunds;

    /** 项目建议书（新建项目） */
    @Excel(name = "项目建议书", readConverterExp = "新=建项目")
    @ApiModelProperty(value = "项目建议书")
    private String projectProposal;

    /** 项目建设理由 */
    @Excel(name = "项目建设理由")
    @ApiModelProperty(value = "项目建设理由")
    private String reasonsForProjectConstruction;

    /** 项目内容简介 */
    @Excel(name = "项目内容简介")
    @ApiModelProperty(value = "项目内容简介")
    private String projectContentIntroduction;

    /** 预期效果描述 */
    @Excel(name = "预期效果描述")
    @ApiModelProperty(value = "预期效果描述")
    private String expectedEffectDescription;

    /** 前期工作完成情况 */
    @ApiModelProperty(value = "前期工作完成情况")
    @Excel(name = "前期工作完成情况")
    private String workCompletion;

    /** 项目负责人 */
    @ApiModelProperty(value = "项目负责人")
    @Excel(name = "项目负责人")
    private String projectLeader;

    /** 负责人电话 */
    @ApiModelProperty(value = "负责人电话")
    @Excel(name = "负责人电话")
    private String telephoneNumber;

    /** 项目联系人 */
    @ApiModelProperty(value = "项目联系人")
    @Excel(name = "项目联系人")
    private String projectContact;

    /** 联系人电话 */
    @ApiModelProperty(value = "联系人电话")
    @Excel(name = "联系人电话")
    private String contactTelephone;


    /** 删除标识（0：正常，1：删除） */
    @ApiModelProperty(value = "删除标识（0：正常，1：删除）")
    private String delFlag;

    /** 暂存标识（0：正常1：暂存） */
    @ApiModelProperty(value = "暂存标识（0：正常1：暂存）")
    @Excel(name = "暂存标识", readConverterExp = "0=：正常1：暂存")
    private String temporaryFlag;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @TableField("create_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createTime;

    /**
     * 修改时间
     */
    @ApiModelProperty(value = "修改时间")
    @TableField("update_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime updateTime;

    /** 建设单位 */
    @ApiModelProperty(value = "建设单位")
    private String constructionUnit;

    /** 所属部门 */
    @ApiModelProperty(value = "所属部门")
    private String department;
}
